package ee.maoinvest.backend.services;

import java.util.List;

import ee.maoinvest.backend.model.data.statistics.EnterpriseContractPeriodsSummaries;
import ee.maoinvest.backend.model.data.statistics.EnterpriseTotalEnergyConsumptionAndCostSummaryBetweenGivenRegularReadings;
import ee.maoinvest.backend.model.data.statistics.electricityMeterAndItsChildrenEnergyConsumption.ChildMetersTempRelationPeriodsWithParentMeterDetailSummariesBetweenGivenRegularReadings;
import ee.maoinvest.backend.model.data.statistics.electricityMeterAndItsChildrenEnergyConsumption.SingleMeterReadingsSummariesBetweenGivenRegularReadings;

public interface StatisticsService 
{
	public List<EnterpriseContractPeriodsSummaries> getListOfAllEnterprisesContractPeriodsSummariesForPeriodsThatExistedBetweenGivenRegularReadings(
			int minRegularReadingID, int maxRegularReadingID);

	public List<EnterpriseContractPeriodsSummaries> getListOfSingleEnterprisesContractPeriodsSummariesForPeriodsThatExistedBetweenGivenRegularReadings(
			int enterpriseID, int minRegularReadingID, int maxRegularReadingID);
	
	public List<EnterpriseContractPeriodsSummaries> getListOfAllEnterprisesContractPeriodsWithSubstationMainElectricityMetersSummariesForPeriodsThatExistedBetweenGivenRegularReadings(
			int minRegularReadingID, int maxRegularReadingID);
	
	public List<EnterpriseTotalEnergyConsumptionAndCostSummaryBetweenGivenRegularReadings> getSingleEnterpriseTotalEnergyConsumptionAndCostSummaryBetweenGivenRegularReadings(
			int enterpriseID, int minRegularReadingID, int maxRegularReadingID);
	
	public List<EnterpriseTotalEnergyConsumptionAndCostSummaryBetweenGivenRegularReadings> getListOfAllEnterprisesTotalEnergyConsumptionAndCostSummaryBetweenGivenRegularReadings(
			int minRegularReadingID, int maxRegularReadingID);
	
	public List<EnterpriseTotalEnergyConsumptionAndCostSummaryBetweenGivenRegularReadings> getListOfAllEnterprisesTotalEnergyConsumptionAndCostSummaryBetweenGivenRegularReadingsWhenEnterpriseWasInContractWithSubstationMainElectricityMeter(
			int minRegularReadingID, int maxRegularReadingID);
	
	public SingleMeterReadingsSummariesBetweenGivenRegularReadings getSingleMeterReadingsSummariesBetweenGivenRegularReadings(
			int electricityMeterID, int minRegularReadingID, int maxRegularReadingID);
	
	public List<ChildMetersTempRelationPeriodsWithParentMeterDetailSummariesBetweenGivenRegularReadings> getListOfChildMetersTempRelationPeriodsWithParentMeterDetailSummariesBetweenGivenRegularReadings(
			int electricityMeterID, int minRegularReadingID, int maxRegularReadingID);
}
